Computer devices are ubiquitous in today's society. Despite the importance of computer devices, most computer programs are directed towards individuals of normal ability who are able to see output rendered to a display and hear output rendered to a speaker or other audio endpoint. Similarly, most general computer programs are only configured to receive input from typical input devices (e.g., keyboards and pointing devices such as a mouse, trackball, or touch screen).
Unless software is specifically directed towards disabled individuals, programs typically will have few, if any, features that make it easier for disabled individuals to interact with the software. Even if software programs provide some limited support for disabled individuals, the support is often only helpful for mildly disabled individuals. Further, providing even that level of support can require significant additional programming effort, which is why it may be forgone in many cases. If software support for disabled individuals is provided by a program, it is typically specific to that program, and cannot easily be used in a different computer program.
There have been some attempts to make computer devices generally more accessible to disabled individuals. For example, an operating system may provide features such as speech recognition, text-to-speech capabilities, visual alternatives to audio output, and screen displays enhanced to assist the visually impaired. However, it can be difficult for a general accessibility scheme to support the needs of specific computer programs. In addition, general accessibility features may be cumbersome for a user and may not be sufficient for severely disabled individuals, or individuals whose disabilities do not match the provided accessibility features.
In some cases, the lack of effective ways for disabled individuals to interact with computer programs can result in a normally-abled individual needing to assist the disabled individual to interact with a computer, or manually carrying out a task that could be implemented with a computer program. Human intervention can dramatically increase the cost of carrying out an activity, as well as the time required to carry out an activity. The cost and time needed to carry out activities with disabled individuals may result in reduced interaction with disabled individuals. In addition, because the disabled individual is not directly providing input, there is the chance for miscommunication to occur between the normally-abled individual and the disabled individual. Accordingly, there remains room for improvement in providing mechanisms for disabled individuals to interact with computer programs, or otherwise provide non-standard ways for individuals to interact with computer programs.